/*
 * colas.h
 *
 *  Created on: 04/11/2011
 *      Author: utn_so
 */

#include"./BibliotecasGenerales.h"


#ifndef COLAS_H_
#define COLAS_H_



typedef struct nodo{
	uint32_t peticion;
	uint32_t flagRW;
	uint32_t lonMsj;
	char mensaje[512];
	uint32_t socket;
	struct nodo *ptrSgte;
}nodo_t;

typedef nodo_t *ptrNodo;

typedef struct desc_PDD{
	uint32_t socket;
	pthread_t hilo;
	ptrNodo colaFin;
	ptrNodo colaFte;
	uint32_t flagSincro; //1 si está sincronizado, 0 si no lo está
	char identificador[50];
}desc_PDD_t;

typedef struct paramSincro{
uint32_t sectoresPorDisco;
ptrNodo colaFte;
ptrNodo colaFin;
desc_PDD_t desc_PDD[10];
uint32_t cantPDD;
}sincro_t;

void agregar(ptrNodo *ColaFte,ptrNodo *ColaFin,nodo_t valores);
uint32_t suprimir (ptrNodo *ColaFte, ptrNodo *ColaFin);
void titulo(void);
uint32_t estaVacia (ptrNodo ColaFte);
void mostrarLista (ptrNodo ColaFte);
void suprimirColaSincro (ptrNodo *ColaFte, ptrNodo *ColaFin);
uint32_t suprimirNodoAux (ptrNodo Lista,nodo_t nodoAux);
uint32_t reencolarNodoAux (ptrNodo Lista,uint32_t socket, uint32_t cant_PDD);

#endif /* COLAS_H_ */
